package dados;

public class ArvorePk {
	private int posicao;
	private int numAtendimento;
	private int seqAtendimento;
	private ArvorePk anterior;
	private ArvorePk posterior;
	
	public ArvorePk(int posicao, int numAtendimento, 
			int seqAtendimento, ArvorePk anterior, ArvorePk posterior) {
		this.posicao = posicao;
		this.numAtendimento = numAtendimento;
		this.seqAtendimento = seqAtendimento;
		this.anterior = anterior;
		this.posterior = posterior;
	}
	public ArvorePk getAnterior() {
		return anterior;
	}
	public void setAnterior(ArvorePk anterior) {
		this.anterior = anterior;
	}
	public int getNumAtendimento() {
		return numAtendimento;
	}
	public void setNumAtendimento(int numAtendimento) {
		this.numAtendimento = numAtendimento;
	}
	public ArvorePk getPosterior() {
		return posterior;
	}
	public void setPosterior(ArvorePk posterior) {
		this.posterior = posterior;
	}
	public int getSeqAtendimento() {
		return seqAtendimento;
	}
	public void setSeqAtendimento(int seqAtendimento) {
		this.seqAtendimento = seqAtendimento;
	}
	public int getPosicao() {
		return posicao;
	}
	public void setPosicao(int posicao) {
		this.posicao = posicao;
	}
	public int getValor() {
		return numAtendimento*1000 + seqAtendimento;
	}
	public void adicionarArvorePropria(ArvorePk no, int numAtendimento, int seqAtendimento, int posicao) {
		int valor = numAtendimento*1000 + seqAtendimento;
		if (no.getValor()>valor){
			if (no.getAnterior()==null){
				no.setAnterior(new ArvorePk(posicao,numAtendimento,seqAtendimento,null,null)); 
			} else {
				no.adicionarArvorePropria(no.getAnterior(),numAtendimento,seqAtendimento,posicao);
			}			
		} else if (no.getValor()<valor){
			if (no.getPosterior()==null){
				no.setPosterior(new ArvorePk(posicao,numAtendimento,seqAtendimento,null,null));
			} else {
				no.adicionarArvorePropria(no.getPosterior(),numAtendimento,seqAtendimento,posicao);
			}
		}
		
	}
	
}
